// 存储器：让我们可以有效的控制对 对象中的成员的访问，通过getters和setters来进行操作
(()=>{
//  外部可以传入姓氏和名字数据，同时使用set和get控制姓名的数据，外部也可以进行修改操作
    class Person{
        firstName:string
        lastName:string
        // 姓名的成员属性(外部可以访问，也可以修改)
        constructor(firstName:string,lastName:string){
            this.firstName=firstName
            this.lastName = lastName
        }
        // 读取器---负责读取数据的
        get fullName(){
            console.log('get中-----');
            // 姓名==姓氏和名字的拼接
            return this.firstName +'_'+this.lastName
        }
        // 设置器 数据的修改
        set fullName (val){
        console.log('get中-----');
        let names = val.split('_')
        this.firstName=names[0]
        this.lastName=names[1]
        }
    }
    // 实例化对象
    const person:Person = new Person('李','森')
    // 获取属性成员数据
    console.log(person.fullName);
    person.fullName='郑啊'
    console.log(person.fullName);

})()